//package cn.xiaolang.function.json.jacksonVSfastJson;
//
//import java.io.IOException;
//import java.io.Serializable;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//
//import org.springframework.util.StopWatch;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.serializer.SerializerFeature;
//import com.fasterxml.jackson.databind.ObjectMapper;
//
///**
// * @author Xiaolang
// */
//public class JacksonVSFastjsonTest {
//	private static final ObjectMapper MAPPER = new ObjectMapper();
//
//	public static void main(String[] args) throws IOException {
//
//		/**
//		 * 简单的使用对比
//		 */
////		simpleApplyCompare();
//		/**
//		 * 效率对比
//		 */
//		StopWatch jSerialWatch = new StopWatch("Jackson-serial");
//		jSerialWatch.start();
//		for (int i = 0; i < 10000; i++) {
//			Userinfo info = new Userinfo();
//			info.setName("xiaolang");
//			info.setAge(20);
//			JSON.toJSONString(info);
//		}
//		jSerialWatch.stop();
//		System.err.println(jSerialWatch.prettyPrint());
//
//		System.gc();
//		System.out.println("==========");
//
//		StopWatch fSerialWatch = new StopWatch("fast-serial");
//		fSerialWatch.start();
//		for (int i = 0; i < 10000; i++) {
//			Userinfo info = new Userinfo();
//			info.setName("xiaolang");
//			info.setAge(20);
//			MAPPER.writeValueAsString(info);
//		}
//		fSerialWatch.stop();
//		System.err.println(fSerialWatch.prettyPrint());
//
//	}
//
//	public static void simpleApplyCompare() throws IOException {
//
//		Userinfo info = new Userinfo();
//		info.setName("xiaolang");
//		info.setAge(20);
//		// FastJson简单的序列化
//		System.out.println("FastJson的序列化：=" + JSON.toJSONString(info));
//		System.out.println("Jackson的序列化：=" + MAPPER.writeValueAsString(info));
//
//		// FastJson的反序列化
//		String jsonParse = "{\"age\":20,\"name\":\"xiaolang\"}";
//		System.err.println("FastJson的反序列化：userinfo=" + JSON.parseObject(jsonParse, Userinfo.class));
//		System.err.println("Jackson的反序列化：userinfo=" + MAPPER.readValue(jsonParse, Userinfo.class));
//		System.out.println("======");
//
//		HashMap<String, Object> map = new HashMap<String, Object>();
//		map.put("username", "火女");
//		map.put("id", "1023");
//
//		HashMap<String, Object> map2 = new HashMap<String, Object>();
//		map2.put("name", "小冰熊");
//		map2.put("age", 23);
//		map.put("girlinfo", map2);
//
//		List<String> list = new ArrayList<String>();
//		list.add("骑车");
//		list.add("看电影");
//		list.add("旅游");
//		map.put("hobbies", list);
//
//		System.out.println("List:" + list.toString());
//		System.out.println("Map:" + map.toString());
//
//		String json = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);
//		System.err.println("FastJson的集合序列化:" + json);
//		System.err.println("Jackson的集合序列化：" + MAPPER.writeValueAsString(map));
//
//	}
//}
//
//class Userinfo implements Serializable {
//	private static final long serialVersionUID = 1L;
//	private String name;
//	private int age;
//
//	public String getName() {
//		return name;
//	}
//
//	public void setName(String name) {
//		this.name = name;
//	}
//
//	public int getAge() {
//		return age;
//	}
//
//	public void setAge(int age) {
//		this.age = age;
//	}
//
//	@Override
//	public String toString() {
//		return "Userinfo [name=" + name + ", age=" + age + "]";
//	}
//
//}